home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1994 / MacHack 1994.toast / MacHack™94 / Talks & Papers / Timothy Knox / yerk 3.66 / Float source / elCode next >
Text File  |  1994-06-24  |  3KB  |  143 lines

  1. \ interface to SANE transcendentals package 5
  2. \  9/20/85  cbd Version 1.0
  3. \  1/24/86  gdc Debugged Compound and Annuity
  4.  
  5. :CODE ln    \ natural log
  6.         move.l  (a7),d0
  7.         pea     2(a3,d0.l)
  8.         clr.w   -(a7)
  9.         call    pack5
  10. ;CODE
  11.  
  12. :CODE log2
  13.         move.l  (a7),d0
  14.         pea     2(a3,d0.l)
  15.         move.w  #2,-(a7)
  16.         call    pack5
  17. ;CODE
  18.  
  19. :CODE ln1
  20.         move.l  (a7),d0
  21.         pea     2(a3,d0.l)
  22.         move.w  #4,-(a7)
  23.         call    pack5
  24. ;CODE
  25.  
  26. :CODE log21
  27.         move.l  (a7),d0
  28.         pea     2(a3,d0.l)
  29.         move.w  #6,-(a7)
  30.         call    pack5
  31. ;CODE
  32.  
  33. :CODE exp
  34.         move.l  (a7),d0
  35.         pea     2(a3,d0.l)
  36.         move.w  #8,-(a7)
  37.         call    pack5
  38. ;CODE
  39.  
  40. :CODE exp2
  41.         move.l  (a7),d0
  42.         pea     2(a3,d0.l)
  43.         move.w  #10,-(a7)
  44.         call    pack5
  45. ;CODE
  46.  
  47. :CODE exp1
  48.         move.l  (a7),d0
  49.         pea     2(a3,d0.l)
  50.         move.w  #12,-(a7)
  51.         call    pack5
  52. ;CODE
  53.  
  54. :CODE exp21
  55.         move.l  (a7),d0
  56.         pea     2(a3,d0.l)
  57.         move.w  #14,-(a7)
  58.         call    pack5
  59. ;CODE
  60.  
  61. \ ( x y -- x**y) general exponentiation - takes 2 floats
  62. :CODE x**y
  63.         move.l  (A7)+,D0    ; get 2 floats in D0,D1
  64.         move.l  (A7)+,D1    ; 
  65.         pea     2(A3,D0.l)  ; push abs data addresses       
  66.         pea     2(A3,D1.l)         
  67.         move.l  YERK[(fltDisp)],d7     ; get subr addr in d7
  68.         jsr     0(a3,d7.l)              ; go kill           
  69.         move.w  #32786,-(a7)
  70.         call    pack5
  71.         move.l  d1,-(a7)
  72. ;CODE
  73.  
  74. ( rate #periods -- compound_interest)
  75. :CODE compound
  76.         move.l  YERK[(fltNew)],d7     ; get subr addr in d7
  77.         jsr     0(a3,d7.l)            ; get new float for destination
  78.         move.l  D1,D2                 ; move address of destination to D2
  79.         move.l  (A7)+,D0    ; src2
  80.         move.l  (A7)+,D1    ; src1
  81.         pea     2(A3,D1.l)  ; push abs data addresses       
  82.         pea     2(A3,D0.l)         
  83.         pea     2(A3,D2.l)         
  84.         move.l  YERK[(fltDisp2)],d7     ; get subr addr in d7
  85.         jsr     0(a3,d7.l)              ; go kill src,src2           
  86.         move.w  #49172,-(a7)
  87.         call    pack5
  88.         move.l  d2,-(a7)
  89. ;CODE
  90.  
  91. ( rate #periods -- annuity)
  92. :CODE annuity
  93.         move.l  YERK[(fltNew)],d7     ; get subr addr in d7
  94.         jsr     0(a3,d7.l)            ; get new float for destination
  95.         move.l  D1,D2                 ; move address of destination to D2
  96.         move.l  (A7)+,D0    ; src2
  97.         move.l  (A7)+,D1    ; src1
  98.         pea     2(A3,D1.l)  ; push abs data addresses       
  99.         pea     2(A3,D0.l)         
  100.         pea     2(A3,D2.l)         
  101.         move.l  YERK[(fltDisp2)],d7     ; get subr addr in d7
  102.         jsr     0(a3,d7.l)              ; go kill src,src2           
  103.         move.w  #49174,-(a7)
  104.         call    pack5
  105.         move.l  d2,-(a7)
  106. ;CODE
  107.  
  108. :CODE sin
  109.         move.l  (a7),d0
  110.         pea     2(a3,d0.l)
  111.         move.w  #24,-(a7)
  112.         call    pack5
  113. ;CODE
  114.  
  115. :CODE cos
  116.         move.l  (a7),d0
  117.         pea     2(a3,d0.l)
  118.         move.w  #26,-(a7)
  119.         call    pack5
  120. ;CODE
  121.  
  122. :CODE tan
  123.         move.l  (a7),d0
  124.         pea     2(a3,d0.l)
  125.         move.w  #28,-(a7)
  126.         call    pack5
  127. ;CODE
  128.  
  129. :CODE arcTan
  130.         move.l  (a7),d0
  131.         pea     2(a3,d0.l)
  132.         move.w  #30,-(a7)
  133.         call    pack5
  134. ;CODE
  135.  
  136. \ floating-pt random number routine
  137. :CODE fRand
  138.         move.l  (a7),d0
  139.         pea     2(a3,d0.l)
  140.         move.w  #32,-(a7)
  141.         call    pack5
  142. ;CODE
  143.